基于Nios II的機(jī)器人視覺伺服控制器的研究與設(shè)計
Altera公司的Nios II處理器是可編程邏輯器件的軟核處理器。NiosII軟核處理器和存儲器、I/O接口等外設(shè)可嵌入到FPGA中,組成一個可編程單芯片系統(tǒng)(SOPC),大大降低了系統(tǒng)的成本、體積和功耗。適合網(wǎng)絡(luò)、電信、數(shù)據(jù)通信、嵌入式和消費(fèi)市場等各種嵌入式應(yīng)用場合。
本文提出一個基于Nios II處理器結(jié)構(gòu)的系統(tǒng)用于實現(xiàn)機(jī)器人實時運(yùn)動檢測跟蹤,使用線性卡爾曼濾波器算法來快速完成運(yùn)動估計及進(jìn)一步分析和校正,算法中的乘除利用MATLAB/DSP Builder生成的模塊作為Nios II處理器的自定義指令的設(shè)計方法。
機(jī)器人視覺伺服控制器的研究與設(shè)計
機(jī)器人視覺伺服控制就是用各種成像系統(tǒng)代替視覺器官作為輸入的敏感手段,并由高速處理器替代大腦完成相應(yīng)的處理和解釋,其最終研究目標(biāo)就是使機(jī)器人視覺伺服控制器能像人那樣通過視覺觀察和理解世界,具有自主適應(yīng)環(huán)境的能力,可依據(jù)視覺敏感和反饋,以某種程度的智能完成一定的任務(wù)。
系統(tǒng)硬件實現(xiàn)
基于SOPC的機(jī)器人視覺伺服控制器,主要由FPGA、存儲器和外設(shè)三個部分。
攝像頭位置固定,它所能采集圖像的范圍稱為視覺區(qū)域,調(diào)整攝像機(jī)使視覺區(qū)域覆蓋機(jī)器人的工作空間,即機(jī)器人要跟蹤的曲線在該視覺區(qū)域內(nèi)。利用攝像機(jī)采集圖像,而后系統(tǒng)對采集的圖像進(jìn)行處理,分析、提取出離散的采樣點序列,最后再根據(jù)采樣點序列規(guī)劃機(jī)器人的運(yùn)動路徑。其中,F(xiàn)PGA部分核心是Nios II處理器Core。在一般的嵌入式系統(tǒng)開發(fā)中,當(dāng)需要新的外設(shè)模塊時往往需要在PCB上加入相應(yīng)的外設(shè)芯片或者換用更高檔的CPU,而SOPC設(shè)計可以同一個FPGA芯片內(nèi)加入相應(yīng)的外設(shè)模塊核,并通過在片上的Avalon總線與NiosⅡ處理器Core相連,因而不需要在PCB這個層面上作更多的修改。成像采集裝置從目標(biāo)對象場景中采集圖像序列,保存在SOPC的片外存儲器中,然后利用NiosⅡ處理器和定制的乘法、除法等DSP運(yùn)算指令來實現(xiàn)線形卡爾曼濾波器的算法,從而實現(xiàn)運(yùn)動目標(biāo)的識別與跟蹤。
系統(tǒng)軟件的實現(xiàn)
離散線性卡爾曼濾波算法
線性卡爾曼濾波是美國工程師Kalman在線性最小方差估計的基礎(chǔ)上,提出的數(shù)學(xué)結(jié)構(gòu)上比較簡單的最優(yōu)線性遞推濾波方法,具有計算量、存儲量低,實時性高的優(yōu)點。特別是經(jīng)歷了初始濾波的過渡狀態(tài)后,濾波效果非常好。
線性卡爾曼濾波基本算法如下:設(shè)一隨機(jī)動態(tài)系統(tǒng),其數(shù)學(xué)模型為:
公式1中x(k)為系統(tǒng)狀態(tài)矢量,w(k)為系統(tǒng)噪音矢量,φ(k),Г(k)為系統(tǒng)矩陣,公式2中Z(k)為系統(tǒng)觀測矢量,H(k)為系統(tǒng)觀測矩陣,V(k)為系統(tǒng)觀測噪音矩陣。
關(guān)于系統(tǒng)的隨機(jī)性,本文假定,系統(tǒng)噪音和觀測噪音是不相關(guān)的零均值高斯白噪聲。隨機(jī)系統(tǒng)的狀態(tài)估計問題,就是根據(jù)選定的估計準(zhǔn)則和獲取的測量信息對系統(tǒng)狀態(tài)進(jìn)行估計,卡爾曼濾波的估計準(zhǔn)則是:
其中,,即估計是x(k)無偏和最小方差,根據(jù)這兩個準(zhǔn)則可推導(dǎo)出對系統(tǒng)的完整的濾波算法,即:
預(yù)測誤差方程為:
增益矩陣方程為:
濾波誤差方差陣為:
上述公式中I是單位矩陣,Q為w(k)自協(xié)方差方差陣,R為V(k)自協(xié)方差方差陣??柭鼮V波采用遞推算法,計算最優(yōu)濾波值時,K(k+1)由P(k+1|k)來確定,P(k+1|k)由P(k)來確定,P(k+1)由P(k+1|k)和K(k+1)來確定,如此反復(fù)遞推運(yùn)算。
系統(tǒng)程序流程
本系統(tǒng)的主要功能是完成運(yùn)動目標(biāo)的鎖定,并控制運(yùn)動平臺對目標(biāo)進(jìn)行實時跟蹤。使用高性能NiosII處理器作為控制器控制著整個系統(tǒng)的實現(xiàn)流程和高效的線性卡爾曼濾波算法對目標(biāo)運(yùn)動參數(shù)的估計,有效地提高了圖像處理速度,實現(xiàn)了運(yùn)動目標(biāo)的快速跟蹤。以下是系統(tǒng)流程:
1.系統(tǒng)初始化:由SOPC通過控制總線設(shè)置USB接口微型攝像頭工作模式,并初始化其主控程序變量。 2.確定運(yùn)動區(qū)域:由Nios II處理器根據(jù)圖像序列鎖定運(yùn)動物體,根據(jù)被跟蹤物體確定運(yùn)動跟蹤區(qū)間,接下來的跟蹤操作都是在這個跟蹤窗口中進(jìn)行。 3.預(yù)測計算:利用線形卡爾曼濾波器方程進(jìn)行計算。 4.濾波:預(yù)測和濾波是相互作用的,即由濾波得到預(yù)測而由預(yù)測又可得到濾波。 5.輸出:SOPC發(fā)出控制信號給隨動平臺。
該系統(tǒng)采用集成了Nios軟核處理器的Stratix高密度FPGA,控制器通過攝像頭記錄每一時刻運(yùn)動目標(biāo)的位置和速度作為觀測值。然后按照公式(3)、(4)、(5)、(6)進(jìn)行最佳狀態(tài)估計,得到每一時刻運(yùn)動目標(biāo)的位置和速度的預(yù)測值。由于各種干擾因素的存在,經(jīng)過七八個時間段后預(yù)測位置與觀測位置相當(dāng)接近,即可實現(xiàn)準(zhǔn)確的狀態(tài)預(yù)測。
結(jié)語
本文建立了一套基于SOPC結(jié)構(gòu)的多關(guān)節(jié)機(jī)器人視覺伺服系統(tǒng),主要應(yīng)用線性卡爾曼濾波算法成功的預(yù)測了運(yùn)動目標(biāo)的狀態(tài)參數(shù)功能是鎖定運(yùn)動目標(biāo),實現(xiàn)對目標(biāo)進(jìn)行實時跟蹤。由于應(yīng)用卡爾曼濾波后極大地縮小了搜索空間,減少了系統(tǒng)的圖像處理時間,可以有效地提高系統(tǒng)的實時性,實現(xiàn)對運(yùn)動目標(biāo)的快速跟蹤。 |
查看更多評論